package com.glink.manage.dto.mqtt;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * Created by IntelliJ IDEA.
 * 车辆道闸-结果上报
 * @Author : qiushaoshan
 * @create 2025/2/8 14:40
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CarBarrierGateResultDTO implements Serializable {

    private static final long serialVersionUID = 7135226797708877442L;

    @ApiModelProperty(name = "cmd", notes = "命令（boot_reg表示设备注册）")
    private String cmd;

    @ApiModelProperty(name = "msg_id", notes = "消息 ID（此次请求的唯一标识，20 位长，前 13 位是毫秒时间，后 7 位是字母和数字的随机数）")
    private String msg_id;

    @ApiModelProperty(name = "type", notes = "结果类型。online 表示正常在线传输结果，offline 表示断网续传结果")
    private String type;

    @ApiModelProperty(name = "plate_num", notes = "车牌号码，无牌车值为字符串“null”")
    private String plate_num;

    @ApiModelProperty(name = "plate_encryption_state", notes = "车牌加密状态，0：未加密 1:加密")
    private int plate_encryption_state;

    @ApiModelProperty(name = "plate_color", notes = "车牌底色，UTF8 编码{\"未知色\", \"蓝色\", \"黄色\", \"白色\", \"黑色\", \"绿色\", \"黄绿色\"}")
    private String plate_color;

    @ApiModelProperty(name = "plate_val", notes = "虚假车牌信息，true 表示真牌，false 表示虚假车牌")
    private boolean plate_val;

    @ApiModelProperty(name = "confidence", notes = "置信度，范围：0-28 ")
    private int confidence;

    @ApiModelProperty(name = "car_logo", notes = "车辆品牌，UTF8 编码 ，{\"丰田\",\"大众\",\"本田\",\"标志\",\"现代\",\"别克\",\"奥迪\",\"起亚\",\"吉普\",\"福特\",\"奔驰\",\"宝马\",\"马自达\",\"铃木\",\"铁雪龙\",\"尼桑\",\"三菱\",\"雷克萨斯\",\"雪佛兰\",\"沃尔沃\",\"菲亚特\",\"比亚迪\",\"奇瑞\"} ")
    private String car_logo;

    @ApiModelProperty(name = "car_color", notes = "车辆颜色，UTF8 编码 {\"未知色\", \"黑色\", \"白色\", \"深红色\", \"红色\", \"深黄色\", \"黄色\", \"深灰色\", \"灰色\", \"深蓝色\", \"蓝色\", \"深绿色\", \"绿色\",\"深粉色\", \"粉色\", \"深棕色\", \"棕色\", \"深紫色\", \"紫色\"}")
    private String car_color;

    @ApiModelProperty(name = "vehicle_type", notes = "车辆类型，UTF8 编码  {\"未知大小\", \"大型车\", \"中型车\", \"小型车\", \"摩托车\", \"行人\"}")
    private String vehicle_type;

    @ApiModelProperty(name = "utc_ts", notes = "识别上传时的 UTC 时间戳 ")
    private long utc_ts;

    @ApiModelProperty(name = "local_time", notes = "识别上传时的本地时间 ")
    private String local_time;

    @ApiModelProperty(name = "inout", notes = "出入口类型，in 表示入口，out 表示出口")
    private String inout;

    @ApiModelProperty(name = "is_whitelist", notes = "是否是白名单车辆，true 表示白名单，false 表示非白名单")
    private boolean is_whitelist;

    @ApiModelProperty(name = "trigger_type", notes = "video 表示视频触发， hwtrigger 表示地感触发，swtrigger 表示软触发")
    private String trigger_type;

    @ApiModelProperty(name = "full_pic_path", notes = "全景图路径，图片另外上传至存储服务器")
    private String full_pic_path;

    @ApiModelProperty(name = "plate_pic_path", notes = "车牌特写图路径，图片另外上传至存储服务器")
    private String plate_pic_path;

    @ApiModelProperty(name = "full_pic_len", notes = "全景图数据长度")
    private int full_pic_len;

    @ApiModelProperty(name = "full_pic", notes = "全景图数据，BASE64 编码")
    private String full_pic;

    @ApiModelProperty(name = "plate_pic_len", notes = "车牌特写图数据长度")
    private int plate_pic_len;

    @ApiModelProperty(name = "plate_pic", notes = "车牌特写图数据， BASE64 编码")
    private String plate_pic;

    @ApiModelProperty(name = "plate_number", notes = "全景图数据，BASE64 编码")
    private int plate_number;

    @ApiModelProperty(name = "speed", notes = "算法识别速度")
    private int speed;

    @ApiModelProperty(name = "perHour", notes = "雷达测试速度（单位km/h）")
    private int perHour;

    @ApiModelProperty(name = "assObtType", notes = "关联目标类型")
    private int assObtType;

    @ApiModelProperty(name = "assObtNum", notes = "关联目标数量")
    private int assObtNum;

    @ApiModelProperty(name = "plate_type", notes = "车牌类型")
    private int plate_type;

    @ApiModelProperty(name = "AeType", notes = "事件类型")
    private int AeType;

    @ApiModelProperty(name = "sn", notes = "相机sn码")
    private String sn;

    @ApiModelProperty(name = "parkingSpaceNum", notes = "车位编号")
    private int parkingSpaceNum;
}
